#include "biblioteca.h"

void excluirCliente(int *qntdClienteResi, int *qntdClienteComer) {
	tipo_cliente cliente;
	tipo_cliente clienteResi, clienteComer;
	int escolha = 0, i, classe = 0;
	char nome[100];
	char telefone[100];
	printf("Escolha a sua busca: \n 1 - nome: \n 2 - telefone: \n 3 - Voltar\n");
	scanf("%d", &escolha);
	switch (escolha) {
	case 1:
		system("clear");
		printf("Digite o nome:");
		getchar();
		gets(nome);
		for (i = 0; i != ((*qntdClienteResi) + (*qntdClienteComer)); i++) { //faz um loop até a qtda de clientes.
			frClienteResi(&clienteResi, &i, qntdClienteResi);
			frClienteComer(&clienteComer, &i, qntdClienteComer);
			if (strcmp(clienteResi.nome, nome) == 10) { // ele retorna 10 quando é igual, logo.
				classe = 1;
			}
			if (strcmp(clienteComer.nome, nome) == 10) {
				classe = 2;
			}
			if (classe == 1) {
				// é igual.
				FILE *Arquivo;
				Arquivo = fopen("cadastro_residencial", "r+b");
				if (!Arquivo)
					printf("Erro na abertura do arquivo.");
				else {
					strcpy(cliente.classe, "$"); //esse será o Código que vai "excluir" o Cliente, o cliente vai continuar mas ele será ocultado.
					strcpy(cliente.nome, "$");
					strcpy(cliente.telefone, "$");
					cliente.tarifa.tarifa_residencial = 0;
					cliente.tarifa.valor_do_minuto_local = 0;
					cliente.tarifa.valor_do_minuto_local_Super = 0;
					cliente.tarifa.valor_do_minuto_local_Movel = 0;
					cliente.tarifa.valor_do_minuto_interurbana = 0;
					cliente.tarifa.valor_do_minuto_interurbana_Movel = 0;
					cliente.tarifa.valor_acesso_despertador = 0;
					cliente.tarifa.valor_acesso_caixa_postal = 0;

					fseek(Arquivo, ((sizeof(tipo_cliente)) * (i)), SEEK_SET);
					fwrite(&cliente, 1, sizeof(tipo_cliente), Arquivo);
					fclose(Arquivo);
					printf("Cliente excluido com Sucesso.\n");
					getchar();
					break;
				}
			}
			if (classe == 2) {
				// é igual.
				FILE *Arquivo;
				Arquivo = fopen("cadastro_comercial", "r+b");
				if (!Arquivo)
					printf("Erro na abertura do arquivo.");
				else {
					strcpy(cliente.classe, "$"); //esse será o Código que vai "excluir" o Cliente, o cliente vai continuar mas ele será ocultado.
					strcpy(cliente.nome, "$");
					strcpy(cliente.telefone, "$");
					cliente.tarifa.tarifa_residencial = 0;
					cliente.tarifa.valor_do_minuto_local = 0;
					cliente.tarifa.valor_do_minuto_local_Super = 0;
					cliente.tarifa.valor_do_minuto_local_Movel = 0;
					cliente.tarifa.valor_do_minuto_interurbana = 0;
					cliente.tarifa.valor_do_minuto_interurbana_Movel = 0;
					cliente.tarifa.valor_acesso_despertador = 0;
					cliente.tarifa.valor_acesso_caixa_postal = 0;
					fseek(Arquivo, ((sizeof(tipo_cliente)) * (i)), SEEK_SET);
					fwrite(&cliente, 1, sizeof(tipo_cliente), Arquivo);
					fclose(Arquivo);
					printf("Cliente excluido com Sucesso.\n");
					getchar();
					break;
				}
			} else {
				// não é igual.
				printf("Não existe esse cliente para poder excluir");
				getchar();
			}
		}
		break;
	case 2:
		system("clear");
		printf("Digite o Telefone:");
		getchar();
		gets(telefone);
		for (i = 0; i != ((*qntdClienteResi) + (*qntdClienteComer)); i++) { //faz um loop até a qtda de clientes.
			frClienteResi(&clienteResi, &i, qntdClienteResi);
			frClienteComer(&clienteComer, &i, qntdClienteComer);
			if (strcmp(clienteResi.telefone, telefone) == 10) { // ele retorna 10 quando é igual, logo.
				classe = 1;
			}
			if (strcmp(clienteComer.telefone, telefone) == 10) {
				classe = 2;
			}
			if (classe == 1) {
				// é igual.
				FILE *Arquivo;
				Arquivo = fopen("cadastro_residencial", "r+b");
				if (!Arquivo)
					printf("Erro na abertura do arquivo.");
				else {
					strcpy(cliente.classe, "$"); //esse será o Código que vai "excluir" o Cliente, o cliente vai continuar mas ele será ocultado.
					strcpy(cliente.nome, "$");
					strcpy(cliente.telefone, "$");
					cliente.tarifa.tarifa_residencial = 0;
					cliente.tarifa.valor_do_minuto_local = 0;
					cliente.tarifa.valor_do_minuto_local_Super = 0;
					cliente.tarifa.valor_do_minuto_local_Movel = 0;
					cliente.tarifa.valor_do_minuto_interurbana = 0;
					cliente.tarifa.valor_do_minuto_interurbana_Movel = 0;
					cliente.tarifa.valor_acesso_despertador = 0;
					cliente.tarifa.valor_acesso_caixa_postal = 0;

					fseek(Arquivo, ((sizeof(tipo_cliente)) * (i)), SEEK_SET);
					fwrite(&cliente, 1, sizeof(tipo_cliente), Arquivo);
					fclose(Arquivo);
					printf("Cliente excluido com Sucesso.\n");
					getchar();
					break;
				}
			}
			if (classe == 2) {
				// é igual.
				FILE *Arquivo;
				Arquivo = fopen("cadastro_comercial", "r+b");
				if (!Arquivo)
					printf("Erro na abertura do arquivo.");
				else {
					strcpy(cliente.classe, "$"); //esse será o Código que vai "excluir" o Cliente, o cliente vai continuar mas ele será ocultado.
					strcpy(cliente.nome, "$");
					strcpy(cliente.telefone, "$");
					cliente.tarifa.tarifa_residencial = 0;
					cliente.tarifa.valor_do_minuto_local = 0;
					cliente.tarifa.valor_do_minuto_local_Super = 0;
					cliente.tarifa.valor_do_minuto_local_Movel = 0;
					cliente.tarifa.valor_do_minuto_interurbana = 0;
					cliente.tarifa.valor_do_minuto_interurbana_Movel = 0;
					cliente.tarifa.valor_acesso_despertador = 0;
					cliente.tarifa.valor_acesso_caixa_postal = 0;
					fseek(Arquivo, ((sizeof(tipo_cliente)) * (i)), SEEK_SET);
					fwrite(&cliente, 1, sizeof(tipo_cliente), Arquivo);
					fclose(Arquivo);
					printf("Cliente excluido com Sucesso.\n");
					getchar();
					break;
				}
			} else {
				// não é igual.
				printf("Não existe esse cliente para poder excluir");
				getchar();
			}
		}
		break;
	case 3:
		system("clear");
		break;
	default:
		printf("Item do menu invalido\n");
		getchar();
		getchar();
		break;
	}
}

